home *** CD-ROM | disk | FTP | other *** search
/ Sprite 1984 - 1993 / Sprite 1984 - 1993.iso / lib / tex / inputs / array.sty < prev    next >
Text File  |  1991-05-20  |  10KB  |  272 lines

  1. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  2. % ARRAY.STY                            July 1990      %
  3. %                                                                          %
  4. % This file is part of the AMS-LaTeX Version 1.0 distribution              %
  5. %   American Mathematical Society, Technical Support Group,                %
  6. %   P. O. Box 6248, Providence, RI 02940                                   %
  7. %   800-321-4AMS (321-4267) or 401-455-4080                                %
  8. %   Internet: Tech-Support@Math.AMS.com                                    %
  9. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  10. %% 
  11. %% This is file `array.sty' generated
  12. %% on <1990/6/14> with the docstrip utility (v1.1i). 
  13. %% 
  14. %% The original source file was `array.doc'.
  15. %% 
  16. %% 
  17. %% Copyright (C) 1989,1990 by Frank Mittelbach. All rights reserved. 
  18. %% 
  19. %% IMPORTANT NOTICE: 
  20. %% 
  21. %% You are not allowed to change this file. You may however copy this file 
  22. %% to a file with a different name and then change the copy. 
  23. %% 
  24. %% You are NOT ALLOWED to distribute this file alone. You are NOT ALLOWED 
  25. %% to take money for the distribution or use of this file (or a changed 
  26. %% version) except for a nominal charge for copying etc. 
  27. %% 
  28. %% You are allowed to distribute this file under the condition that it is 
  29. %% distributed together with all files mentioned in readme.mz5. 
  30. %% 
  31. %% If you receive only some of these files from someone, complain! 
  32. %% 
  33. %% However, if these files are distributed by established suppliers as part 
  34. %% of a complete TeX distribution, and the structure of the distribution 
  35. %% would make it difficult to distribute the whole set of files, *those 
  36. %% parties* are allowed to distribute only some of the files provided that 
  37. %% it is made clear that the user will get a complete distribution-set upon 
  38. %% request to that supplier (not me). 
  39. %% Notice that this permission is not granted to the end user. 
  40. %% 
  41. %% 
  42. %% Error Reports in case of UNCHANGED versions to 
  43. %% 
  44. %% F. Mittelbach 
  45. %% Eichenweg 29 
  46. %% D-6500 Mainz 1 
  47. %% Federal Republic of Germany 
  48. %% Bitnet: <PZF5HZ@DRUEDS2> 
  49. %% 
  50.  
  51. \def\fileversion{v2.0b}
  52. \def\filedate{89/05/17}
  53. \def\docdate {89/05/12}
  54.  
  55. %% \CheckSum{682}
  56. %% \CharacterTable
  57. %%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
  58. %%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
  59. %%   Digits        \0\1\2\3\4\5\6\7\8\9
  60. %%   Exclamation   \!     Double quote  \"     Hash (number) \#
  61. %%   Dollar        \$     Percent       \%     Ampersand     \&
  62. %%   Acute accent  \'     Left paren    \(     Right paren   \)
  63. %%   Asterisk      \*     Plus          \+     Comma         \,
  64. %%   Minus         \-     Point         \.     Solidus       \/
  65. %%   Colon         \:     Semicolon     \;     Less than     \<
  66. %%   Equals        \=     Greater than  \>     Question mark \?
  67. %%   Commercial at \@     Left bracket  \[     Backslash     \\
  68. %%   Right bracket \]     Circumflex    \^     Underscore    \_
  69. %%   Grave accent  \`     Left brace    \{     Vertical bar  \|
  70. %%   Right brace   \}     Tilde         \~}
  71. %%
  72. \@ifundefined{d@llar}{}{\endinput}
  73. \typeout{Style-Option: `array' \fileversion
  74.          \space\space <\filedate> (F.M.)}
  75. \typeout{English documentation dated \space <\docdate> (F.M.)}
  76. \def\@addtopreamble#1{\xdef\@preamble{\@preamble #1}}
  77. \def\@testpach#1{\@chclass
  78.  \ifnum \@lastchclass=6 \@ne \@chnum \@ne \else
  79.   \ifnum \@lastchclass=7 5 \else
  80.    \ifnum \@lastchclass=8 \tw@ \else
  81.     \ifnum \@lastchclass=9 \thr@@
  82.    \else \z@
  83.    \ifnum \@lastchclass = 10 \else
  84.    \@chnum
  85.    \if #1c\z@ \else
  86.     \if #1l\@ne \else
  87.      \if #1r\tw@ \else
  88.    \z@ \@chclass
  89.    \if#1|\@ne \else
  90.     \if #1!6 \else
  91.      \if #1@7 \else
  92.       \if #1<8 \else
  93.        \if #1>9 \else
  94.   10
  95.   \@chnum
  96.   \if #1m\thr@@\else
  97.    \if #1p4 \else
  98.     \if #1b5 \else
  99.    \z@ \@chclass \z@ \@preamerr \z@ \fi \fi \fi \fi
  100.    \fi \fi  \fi  \fi  \fi  \fi  \fi \fi \fi \fi \fi \fi}
  101. \def\@xexpast#1*#2#3#4\@@{%
  102.    \@tempcnta #2
  103.    \toks@={#1}\@temptokena={#3}%
  104.    \let\the@toksz\relax \let\the@toks\relax
  105.    \def\@tempa{\the@toksz}%
  106.    \ifnum\@tempcnta >0 \@whilenum\@tempcnta >0\do
  107.      {\edef\@tempa{\@tempa\the@toks}\advance \@tempcnta \m@ne}%
  108.        \let \@tempb \@xexpast \else
  109.        \let \@tempb \@xexnoop \fi
  110.    \def\the@toksz{\the\toks@}\def\the@toks{\the\@temptokena}%
  111.    \edef\@tempa{\@tempa}%
  112.    \expandafter \@tempb \@tempa #4\@@}
  113. \def\prepnext@tok{\advance \count@ \@ne
  114.    \toks\count@={}}
  115. \def\save@decl{\toks \count@ = \expandafter
  116.       {\expandafter \relax \@nextchar}}
  117. \def\insert@column{%
  118.    \the@toks \the \@tempcnta
  119.    \ignorespaces \@sharp \unskip
  120.    \the@toks \the \count@}
  121. \newdimen\col@sep
  122. \def\@acol{\@addtopreamble{\hskip\col@sep}}
  123. \def\@mkpream#1{\gdef\@preamble{}\@lastchclass 4 \@firstamptrue
  124.    \let\@sharp\relax \let\@startpbox\relax \let\@endpbox\relax
  125.    \@xexpast #1*0x\@@
  126.    \count@\m@ne
  127.    \let\the@toks\relax
  128.    \prepnext@tok
  129.    \expandafter \@tfor \expandafter \@nextchar
  130.     \expandafter :\expandafter =\@tempa \do
  131.    {\@testpach\@nextchar
  132.    \ifcase \@chclass \@classz \or \@classi \or \@classii
  133.      \or \save@decl \or \or \@classv \or \@classvi
  134.      \or \@classvii \or \@classviii  \or \@classix
  135.      \or \@classx \fi
  136.    \@lastchclass\@chclass}%
  137.    \ifcase\@lastchclass
  138.    \@acol \or
  139.    \or
  140.    \@acol \or
  141.    \@preamerr \thr@@ \or
  142.    \@preamerr \tw@ \@addtopreamble\@sharp \or
  143.    \or
  144.    \else  \@preamerr \@ne \fi
  145.    \def\the@toks{\the\toks}}
  146. \def\@classx{%
  147.   \ifcase \@lastchclass
  148.   \@acolampacol \or
  149.   \@addamp \@acol \or
  150.   \@acolampacol \or
  151.   \or
  152.   \@acol \@firstampfalse \or
  153.   \@addamp
  154.   \fi}
  155. \def\@classz{\@classx
  156.    \@tempcnta \count@
  157.    \prepnext@tok
  158.    \@addtopreamble{\ifcase \@chnum
  159.       \hfil
  160.       \d@llar
  161.       \insert@column
  162.       \d@llar \hfil \or
  163.       \d@llar \insert@column \d@llar \hfil \or
  164.       \hfil\kern\z@ \d@llar \insert@column \d@llar \or
  165.    $\vcenter
  166.    \@startpbox{\@nextchar}\insert@column \@endpbox $\or
  167.    \vtop \@startpbox{\@nextchar}\insert@column \@endpbox \or
  168.    \vbox \@startpbox{\@nextchar}\insert@column \@endpbox
  169.   \fi}\prepnext@tok}
  170. \def\@classix{\ifnum \@lastchclass = \thr@@
  171.        \@preamerr \thr@@ \fi
  172.        \@classx}
  173. \def\@classviii{\ifnum \@lastchclass >\z@
  174.       \@preamerr 4\@chclass 6 \@classvi \fi}
  175. \def\@arrayrule{\@addtopreamble \vline}
  176. \def\@classvii{\ifnum \@lastchclass = \thr@@
  177.    \@preamerr \thr@@ \fi}
  178. \def\@classvi{\ifcase \@lastchclass
  179.       \@acol \or
  180.       \@addtopreamble{\hskip \doublerulesep}\or
  181.       \@acol \or
  182.       \@classvii
  183.       \fi}
  184. \def\@classii{\advance \count@ \m@ne
  185.    \save@decl\prepnext@tok}
  186. \def\@classv{\save@decl
  187.    \@addtopreamble{\d@llar\the@toks\the\count@\d@llar}%
  188.    \prepnext@tok}
  189. \def\@classi{\@classvi
  190.    \ifcase \@chnum \@arrayrule \or
  191.       \@classv \fi}
  192. \def\@startpbox#1{\bgroup
  193.   \hsize #1 \@arrayparboxrestore
  194.    \vrule \@height \ht\@arstrutbox \@width \z@}
  195. \def\@endpbox{\vrule \@width \z@ \@depth \dp \@arstrutbox \egroup}
  196. \def\@array[#1]#2{%
  197.   \@tempdima \ht \strutbox
  198.   \advance \@tempdima by\extrarowheight
  199.   \setbox \@arstrutbox \hbox{\vrule
  200.              \@height \arraystretch \@tempdima
  201.              \@depth \arraystretch \dp \strutbox
  202.              \@width \z@}%
  203.   \begingroup
  204.   \@mkpream{#2}%
  205.   \xdef\@preamble{\ialign \@halignto
  206.                   \bgroup \@arstrut \@preamble
  207.                           \tabskip \z@ \cr}%
  208.   \endgroup
  209.   \if #1t\vtop \else \if#1b\vbox \else \vcenter \fi \fi
  210.   \bgroup
  211.   \let \@sharp ##\let \protect \relax
  212.   \lineskip \z@
  213.   \baselineskip \z@
  214.   \m@th
  215.   \let\\ \@arraycr  \let\par\@empty \@preamble}
  216. \newdimen \extrarowheight
  217. \extrarowheight=0pt
  218. \def\@arstrut{\unhcopy\@arstrutbox}
  219. \def\@arraycr{{\ifnum 0=`}\fi
  220.   \@ifstar \@xarraycr \@xarraycr}
  221. \def\@xarraycr{\@ifnextchar [%
  222.   \@argarraycr {\ifnum 0=`{\fi}\cr}}
  223. \def\@argarraycr[#1]{\ifnum0=`{\fi}\ifdim #1>\z@
  224.   \@xargarraycr{#1}\else \@yargarraycr{#1}\fi}
  225. \def\@xargarraycr#1{\unskip
  226.   \@tempdima #1\advance\@tempdima \dp\@arstrutbox
  227.   \vrule \@depth\@tempdima \@width\z@ \cr}
  228. \def\@yargarraycr#1{\cr\noalign{\vskip #1}}
  229. \def\multicolumn#1#2#3{%
  230.    \multispan{#1}\begingroup
  231.    \def\@addamp{\if@firstamp \@firstampfalse \else
  232.                 \@preamerr 5\fi}%
  233.    \@mkpream{#2}\@addtopreamble\@empty
  234.    \endgroup
  235.    \def\@sharp{#3}%
  236.    \@arstrut \@preamble \ignorespaces}
  237. \def\array{\col@sep\arraycolsep
  238.   \gdef\d@llar{$}\gdef\@halignto{}%
  239.   \@tabarray}
  240. \def\@tabarray{\@ifnextchar[{\@array}{\@array[c]}}
  241. \def\tabular{\gdef\@halignto{}\@tabular}
  242. \expandafter\def\csname tabular*\endcsname#1{%
  243.       \gdef\@halignto{to#1}\@tabular}
  244. \def\@tabular{%
  245.   \leavevmode
  246.   \hbox \bgroup $\col@sep\tabcolsep \gdef\d@llar{}%
  247.   \@tabarray}
  248. \def\endarray{\crcr \egroup \egroup \gdef\@preamble{}}
  249. \def\endtabular{\endarray $\egroup}
  250. \expandafter\let\csname endtabular*\endcsname=\endtabular
  251. \let\@ampacol=\relax        \let\@expast=\relax
  252. \let\@arrayclassiv=\relax   \let\@arrayclassz=\relax
  253. \let\@tabclassiv=\relax     \let\@tabclassz=\relax
  254. \let\@arrayacol=\relax      \let\@tabacol=\relax
  255. \let\@tabularcr=\relax      \let\@@endpbox=\relax
  256. \let\@argtabularcr=\relax   \let\@xtabularcr=\relax
  257. \def\@preamerr#1{\def\@tempd{{..} at wrong position: }%
  258.    \@latexerr{%
  259.    \ifcase #1 Illegal pream-token (\@nextchar): `c' used\or %0
  260.     Missing arg: token ignored\or                           %1
  261.     Empty preamble: `l' used\or                             %2
  262.     >\@tempd token ignored\or                               %3
  263.     <\@tempd changed to !{..}\or                            %4
  264.     Only one colum-spec. allowed.\fi}\@ehc}                 %5
  265. \def\@tfor#1:=#2\do#3{\def\@fortmp{#2}\ifx\@fortmp\@empty
  266.       \else\@tforloop#2\@nil\@nil\@@#1{#3}\fi}
  267. \endinput
  268.  
  269. \endinput
  270. %% 
  271. %% End of file `array.sty'.
  272.